package com.hst.capacity.infra.persistence.redis;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.hst.capacity.domain.repository.redis.NotificationRedis;
import com.hst.capacity.infra.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

@Repository
public class NotificationRedisImpl implements NotificationRedis {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @Override
    public void writeWebNewOrderNotificationValue(String keySuffix, Integer value) {
        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
        redisTemplate.opsForValue().set(key, String.valueOf(value));
    }

    @Override
    public Integer getWebNewOrderNotificationValue(String keySuffix) {
        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
        String value = redisTemplate.opsForValue().get(key);
        if (StringUtil.isBlank(value))
            return 0;
        return Integer.parseInt(value);
    }

//    @Override
//    public void addWebNewOrderListValue(String keySuffix, String value) {
//        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
//        String result = redisTemplate.opsForValue().get(key);
//        List<String> list = new ArrayList<>();
//        if (StringUtil.isBlank(result)) {
//            list.add(value);
//
//        } else {
//            String arr = result.replace("[","").replace("]","");
//
//        }
//
//    }
//
//    @Override
//    public Integer getWebNewOrderListValue(String keySuffix) {
//        return null;
//    }
//
//    @Override
//    public void writeWebNewOrderNotificationValue(String keySuffix, Integer value) {
//        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
//        redisTemplate.opsForValue().set(key, String.valueOf(value));
//    }
//
//    @Override
//    public Integer getWebNewOrderNotificationValue(String keySuffix) {
//        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
//        String value = redisTemplate.opsForValue().get(key);
//        if (StringUtil.isBlank(value))
//            return 0;
//        return Integer.parseInt(value);
//    }

    @Override
    public void clearWebNewOrderNotification(String keySuffix) {
        String key = String.format(WEB_NEW_ORDER_NOTIFICATION_KEY, keySuffix);
        redisTemplate.opsForValue().set(key, String.valueOf(0));
    }

//    @Override
//    public void clearWebNewOrderListValue(String keySuffix) {
//
//    }

}
